The present invention relates generally to communication between wireless devices. In particular, in a wireless system in which one device polls one or more other devices for information, the present invention is directed to a method and apparatus that allows the polling device to dynamically adjust the polling rate of each polled device based upon the activity level of each polled device.
It is often necessary for electronic devices to communicate with one another in order to exchange data or to provide a centralized control mechanism for the operation of the devices within a particular environment. Typically, electronic devices communicate using an apparatus known as a xe2x80x9cbusxe2x80x9d or xe2x80x9cdata busxe2x80x9d. Although a bus typically consists of a wired communications channel physically connecting devices, it is also possible to construct a bus using a wireless (xe2x80x9ctetherlessxe2x80x9d) communications channel. A wireless communications channel or a wireless bus offers significant advantages by eliminating the physical interconnect between devices.
In order to permit efficient device communication, it is necessary to establish a communications protocol. A communications protocol is a system for the exchange of information between devices and defines a particular communications architecture. For example, communicating devices are often configured in a host/peripheral relationship or a peer/peer relationship. In the host/peripheral arrangement, a host device typically communicates with one or more peripheral devices. A host periodically collects information from its peripherals or sends control information to the peripherals. The process in which a host collects information from its peripherals is known as polling. The host dictates the polling communication sequence with its connected peripheral devices by determining when each peripheral device may xe2x80x9ctalkxe2x80x9d to the host. Under the polling process, unless the host sends permission to a peripheral device, the peripheral cannot send data to the host. The host/peripheral protocol is often referred to as an asymmetric protocol insofar as the host controls the peripherals"" communication abilities.
A typical example of a host/peripheral arrangement is a personal computer (PC) and its various peripheral devices. The host PC is responsible for orchestrating the exchange of data with its peripheral devices and periodically polls all of its peripherals in order to receive data regarding their current state. For example, a host PC will periodically poll its input devices such as the mouse and keyboard to detect events such as mouse movement or the press of key on the keyboard. Upon being polled, these input devices will transmit information regarding their current state to the host PC.
In general, the time sensitivity of the data delivered from each peripheral will vary. For example, printer, keyboard and joystick peripherals will each need to deliver data to the host at different rates due to the inherent nature of their use. The printer device data may not be very time sensitive such that the printer may be able to wait for relatively long periods before sending data to the host PC. The keyboard, however, will need to send data more frequently given the average speed of a touch typist. Finally, the joystick will need to send data quite frequently to keep the host PC apprised of the position of the joystick and its buttons in order to accommodate the requirements of fast paced action games.
Because the activity level of devices will change over time, the time sensitivity of data delivered from a particular device will vary. For example, if a peripheral is not in use at all, it
does not require frequent polling. On the other hand, if a peripheral suddenly enters an active state it may require an increase in its polling rate. For example, a joystick may not require frequent polling if the user of a host PC is not playing a game. However, if the user suddenly chooses to run gaming software that requires a joystick, the polling rate of the joystick should be increased.
If device polling occurs at a fixed rate, at any given time, some devices will be polled at higher rates than required for their current activity levels. Therefore, because the activity level of devices will change over time, bandwidth on the bus will be wasted in a fixed polling scheme. However, in the wired/wireless environment, bandwidth is a scarce resource that must be shared between devices on a communications channel. In order to allocate the available bandwidth efficiently, a polling device should adapt the polling rate of each polled device to meet its changing activity level.
In a wireless system in which a first device polls one or more devices for information, the present invention provides a method and apparatus for the polling device to adjust the polling rate of each polled device to reflect the activity level of each polled device. The polling device calculates the activity level of each polled device and dynamically adjusts the polling rate for each device depending on its current activity level.